home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1992-02-26 | 2.5 KB | 145 lines |
- '
- '********************************************
- '
- ' 3D METER
- ' -----------------
- '
- ' By Malcolm Lavery 1994
- '
- '********************************************
- '
- X=20
- Y=10
- _VALUE=0
- '
- Screen Open 0,640,256,16,Hires
- Palette $0,$FFF,,,$CCC,$EEE,$999,$333,$88F,$A00,$800,$A0,$80,$A,$8
- Curs Off : Cls 0 : Flash Off
- Limit Mouse 0,0 To 640,500
- '
- Screen Open 1,640,256,16,Hires
- Palette $0,$FFF,,,$CCC,$EEE,$999,$333,$88F,$A00,$800,$A0,$80,$A,$8
- Curs Off : Cls 0 : Flash Off
- Double Buffer
- Autoback 0
- Bob Update Off
- Limit Mouse 0,0 To 640,500
- '
- Screen 0
- '
- X Mouse=200
- Y Mouse=100
- BCOL=6
- FCOL=9
- '
- Do
- '
- XSIZE=X Screen(0,X Mouse)
- YSIZE=Y Screen(0,Y Mouse)
- '
- If XSIZE>X and YSIZE>Y
- '
- If Mouse Key=1
- FCOL=Rnd(16)
- End If
- If Mouse Key=2
- BCOL=Rnd(16)
- End If
- '
- _3D_DISPLAY[0,0,639,255,0,6]
- '
- Ink 0,6
- Text 150,240,"ANY SIZE METER CAN BE PRODUCED,MOVE MOUSE"
- Text 150,250," AND IN ANY COLOURS,CLICK MOUSE BUTTONS"
- '
- _3D_METER[X,Y,XSIZE,YSIZE,_VALUE,FCOL,BCOL]
- '
- Screen Copy 0 To 1
- Screen Swap
- Wait Vbl
- '
- Add _VALUE,2
- '
- End If
- '
- Loop
- '
- Procedure _3D_METER[X,Y,WIDTH,HEIGHT,_VALUE,FCOL,BCOL]
- '
- '
- '
- LE=Text Length(TEX$)
- X_TEXT=X+WIDTH/2
- Y_TEXT=Y+HEIGHT/2+3
- '
- '
- HILIGHT=5
- SHADOW=7
- '
- '
- Ink HILIGHT
- Draw X,Y To X+WIDTH,Y
- Draw X,Y To X,Y+HEIGHT
- '
- Ink SHADOW
- Draw X+WIDTH,Y+1 To X+WIDTH,Y+HEIGHT
- Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
- '
- '
- HILIGHT=7
- SHADOW=5
- '
- '
- Ink HILIGHT
- Draw X+1,Y+1 To X+WIDTH-1,Y+1
- Draw X+1,Y+1 To X+1,Y+HEIGHT-1
- '
- Ink SHADOW
- Draw X+WIDTH-1,Y To X+WIDTH-1,Y+HEIGHT-1
- Draw X+WIDTH-1,Y+HEIGHT-1 To X-1,Y+HEIGHT-1
- '
- Ink BCOL
- Bar X+2,Y+2 To X+WIDTH-2,Y+HEIGHT-2
- '
- '
- If _VALUE+X<X+(WIDTH-5) and _VALUE>0
- Ink FCOL
- Bar X+2,Y+2 To X+2+_VALUE,Y+HEIGHT-2
- Else
- Ink FCOL
- Bar X+2,Y+2 To X+WIDTH-3,Y+HEIGHT-2
- End If
- '
- '
- End Proc
- '
- Procedure _3D_DISPLAY[X,Y,WIDTH,HEIGHT,IN_OUT,_FILL]
- '
- '
- '
- If IN_OUT=0
- HILIGHT=5
- SHADOW=7
- End If
- '
- '
- If IN_OUT=1
- HILIGHT=7
- SHADOW=5
- End If
- '
- '
- Ink HILIGHT
- Draw X,Y To X+WIDTH,Y
- Draw X,Y To X,Y+HEIGHT
- '
- Ink SHADOW
- Draw X+WIDTH,Y To X+WIDTH,Y+HEIGHT
- Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
- '
- Ink _FILL
- Bar X+1,Y+1 To X+WIDTH-1,Y+HEIGHT-1
- '
- '
- '
- End Proc